A typical bar code system may employ components that include a light source, a scanner, an optical detector and a processor. The light source projects a light beam at an oscillating scanner that sweeps the light beam in a scan pattern onto a barcode symbol. The optical detector receives light reflected from the bar-code symbol and generates a signal that the processor converts into a data stream. The data is analyzed to determine a particular meaning for the scanned bar-code symbol.
A typical width-modulated linear bar code symbol includes parallel bars and spaces of varying widths extending in a common direction (Y). By scanning a beam of light across the bars and spaces along an axis roughly perpendicular to their long axes (X), and analyzing the light reflected, the scanned bar code symbol can be associated with a particular symbology. A particular bar code symbology comprises a set of encoding and decoding rules, rules for recognizing the symbology, and, rules for error detection and correction. The encoding rules associated with the particular symbology may include provision for encoding letters, symbols and other types of information.
Symbols are not necessarily limited to one-dimensional patterns. Recently, two-dimensional (2D) symbologies have gained favor due to their generally higher data capacity, higher encodation efficiency, and forward error correction. Two current types of 2D symbols are 2D stacked symbols and 2D matrix symbols.
2D stacked symbols generally comprise a plurality of width modulated segments, the segments usually being stacked vertically such that their individual bars and spaces extend along a Y axis with data encoded in their widths along an X axis. In addition to encoding data, each segment often includes means for encoding its position in the stack of segments, for instance by its parity pattern or by location characters appended to the beginning and/or end of the segment. Thus, according to the decoding rules associated with a 2D stacked symbology, a 2D stacked symbol constructed according to those rules may be decoded after scanning each of its segments, with such scanning being performed in no particular order. The inclusion of location data with each segment allows a wide variety of data collection devices to be used to read 2D stacked symbols, including those capable of making measurements along only a single axis.
2D matrix symbols encode their data by the presence or absence of marks across a two-dimensional array of locations or cells, such presence or absence determining the value of a particular cell. The encoding and decoding rules for a 2D matrix symbology include at least one defined method for determining the presence of a symbol within a two-dimensional field-of-view (FOV), determining the extent of the symbol within that FOV, and determining the position of each cell within that extent. Additional rules then define at least one procedure for assembling the detected cell values into data words, and the data words into one or more messages encoded within a symbol. Because data is encoded in locations along both axes of a symbol, 2D matrix symbols are readable only by devices that can detect, or at least infer, two axes within an FOV. In contrast to a 2D stacked symbol, the data in a particular row of most matrix symbols does not, in itself, contain information as to its whereabouts within the symbol.
Many readers compatible with 2D symbols and particularly 2D matrix symbols include two-dimensional detector arrays, for instance CCD or CMOS arrays, that produce a digital representation of a region of a target object. The reader then employs signal processing, such as finder algorithms and decode rules to locate and decode any symbols on the object.
Structurally, common commercial hand held scanner systems typically include a hand held unit that includes a light emitter, scanner, and detector in a single unit. A remote base unit carries a battery that powers the handheld portion. Usually, the operator wears the remote base unit in a hip pack or another similar arrangement. The base unit often includes a processor that analyzes and decodes symbols and controls the handheld portion through a wiring harness.
Variety of approaches have been demonstrated for handheld bar code scanning. Some of these approaches are presented in U.S. Pat. Nos. 5,671,374, 5,665,956, 5,583,331, 5,521,367, 5,519, each of which is incorporated herein by reference.